Debugging, optimizing and fine-tuning the performance of a computer program may require efforts and significant time from a programmer. The programmer may utilize a performance analyzer tool which presents a visual representation of some performance bottlenecks. Accordingly, the programmer may then manually modify the program's source code, or may apply additional optimization methods, in an attempt to optimize the program performance. Unfortunately, this process may be repeated for a significant number of iterations, or may require application of optimization methods in various combinations and sequences, in order to achieve a satisfyingly optimized program.